using System;
using System.Collections.Generic;
using System.Reflection;
namespace Foundry.Engine
{
	
	public class SnapshotItem
	{
		object val;
		
		public bool Changed { get; set; }
		
		public object Value
		{
			get
			{
				return val;
			}
			set
			{
				this.val = value;
				Changed = true;
			}		
		}
	}
	/// <summary>
	/// Represents a data snapshot of an object, which will tell if fields have been changed. 
	/// </summary>
	public class Snapshot
	{
		private static readonly Dictionary<Type, Snapshot> Templates = new Dictionary<Type, Snapshot>();
		
		private Dictionary<PropertyInfo, SnapshotItem> Items { get; set; }
		
		public Snapshot (Type t)
		{
			Items = new Dictionary<PropertyInfo,SnapshotItem>();
			if(Templates.ContainsKey(t))
				Templates[t].CopyTo(this);
			else
			{
				
				
				
				
				
			}
		}
		
		private void CopyTo(Snapshot other)
		{
		}
	}
}

